/*Part of the CEFIRO project by dyrtech.com.ve. Copyleft GPLv3 2007. Please see the disclaimer at the root of the project: http://dyrtech.com.ve/cefiro/license.txt*/
var evento = {
  add: function(obj, etype, fp, cap) {
    cap = cap || false;
    if (obj.addEventListener) obj.addEventListener(etype, fp, cap);
    else if (obj.attachEvent) obj.attachEvent("on" + etype, fp);
  },
  remove: function(obj, etype, fp, cap) {
    cap = cap || false;
    if (obj.removeEventListener) obj.removeEventListener(etype, fp, cap);
    else if (obj.detachEvent) obj.detachEvent("on" + etype, fp);
  },
  DOMit: function(e) {
    e = e? e: window.event;
    e.tgt = e.srcElement? e.srcElement: e.target;
    if (!e.preventDefault) e.preventDefault = function () {
      return false;
    }
    if (!e.stopPropagation) e.stopPropagation = function () {
      if (window.event)
       window.event.cancelBubble = true;
    }
    return e;
  }
}
var viewport = {
  getWinWidth: function () {
    this.width = 0;
    if (window.innerWidth) this.width = window.innerWidth - 18;
    else if (document.documentElement && document.documentElement.clientWidth)
    this.width = document.documentElement.clientWidth;
    else if (document.body && document.body.clientWidth)
    this.width = document.body.clientWidth;
  },
  getWinHeight: function () {
    this.height = 0;
    if (window.innerHeight) this.height = window.innerHeight - 18;
    else if (document.documentElement && document.documentElement.clientHeight)
    this.height = document.documentElement.clientHeight;
    else if (document.body && document.body.clientHeight)
    this.height = document.body.clientHeight;
  },
  getScrollX: function () {
    this.scrollX = 0;
    if (typeof window.pageXOffset == "number") this.scrollX = window.pageXOffset;
    else if (document.documentElement && document.documentElement.scrollLeft)
    this.scrollX = document.documentElement.scrollLeft;
    else if (document.body && document.body.scrollLeft)
    this.scrollX = document.body.scrollLeft;
    else if (window.scrollX) this.scrollX = window.scrollX;
  },
  getScrollY: function () {
    this.scrollY = 0;
    if (typeof window.pageYOffset == "number") this.scrollY = window.pageYOffset;
    else if (document.documentElement && document.documentElement.scrollTop)
    this.scrollY = document.documentElement.scrollTop;
    else if (document.body && document.body.scrollTop)
    this.scrollY = document.body.scrollTop;
    else if (window.scrollY) this.scrollY = window.scrollY;
  },
  getAll: function () {
    this.getWinWidth(); this.getWinHeight();
    this.getScrollX();  this.getScrollY();
  }
}
var Tooltip = {
  followMouse: false,
  offX: 3,
  offY: 3,
  tipID: "tipDiv",
  timerId: 0,
  showDelay: 100,
  hideDelay: 200,
  ready:true,
  timer:null,
  tip:null,
//  init:function(){
//    if(document.createElement&&document.body&&typeof document.body.appendChild!="undefined"){
//      if(!document.getElementById(this.tipID)){
//        var el=document.createElement("DIV");
//        el.id=this.tipID;
//        document.body.appendChild(el);
//      }
//      this.ready=true;
//    }
//  },
  show:function(e,msg){
    if(this.timer){
      clearTimeout(this.timer);
      this.timer=0;
    }
    this.tip=document.getElementById(this.tipID);
    if(this.followMouse)
      evento.add(document,"mousemove",this.trackMouse,true);
    this.writeTip("");
    this.writeTip(msg);
    viewport.getAll();
    this.positionTip(e);
    this.timer=setTimeout("Tooltip.toggleVis('"+this.tipID+"', 'visible')",this.showDelay);
  },
  writeTip:function(msg){
    if(this.tip&&typeof this.tip.innerHTML!="undefined")
      this.tip.innerHTML=msg;
  },
  positionTip:function(e){
    if(this.tip&&this.tip.style){
      var x=e.pageX?e.pageX:e.clientX+viewport.scrollX;
      var y=e.pageY?e.pageY:e.clientY+viewport.scrollY;
      if(x+this.tip.offsetWidth+this.offX>viewport.width+viewport.scrollX){
        x=x-this.tip.offsetWidth-this.offX;
        if(x<0)x=0;
      }
      else x=x+this.offX;
      if(y+this.tip.offsetHeight+this.offY>viewport.height+viewport.scrollY){
          y=y-this.tip.offsetHeight-this.offY;
          if(y<viewport.scrollY)y=viewport.height+viewport.scrollY-this.tip.offsetHeight;
      }
      else y=y+this.offY;
      this.tip.style.left=x+"px";
      this.tip.style.top=y+"px";
    }
  },
  hide:function(){
    if(this.timer){
      clearTimeout(this.timer);
      this.timer=0;
    }
    this.timer=setTimeout("Tooltip.toggleVis('"+this.tipID+"', 'hidden')",this.hideDelay);
    if(this.followMouse)
      evento.remove(document,"mousemove",this.trackMouse,true);
    this.tip=null;
  },
  toggleVis:function(id,vis){
    var el=document.getElementById(id);
    if(el)el.style.visibility=vis;
  },
  trackMouse:function(e){
    e=evento.DOMit(e);
    Tooltip.positionTip(e);
  },
  tipOutCheck: function(e) {
    e = evento.DOMit(e);
    // is element moused into contained by tooltip?
    var toEl = e.relatedTarget? e.relatedTarget: e.toElement;
    if ( this != toEl && !contained(toEl, this) )
      Tooltip.hide();
  },
  clearTimer: function() {
    if (Tooltip.timerId) {
      clearTimeout(Tooltip.timerId);
      Tooltip.timerId = 0;
    }
  },
  unHookHover: function () {
    var tip = document.getElementById? document.getElementById(Tooltip.tipID): null;
    if (tip) {
      tip.onmouseover = null;
      tip.onmouseout = null;
      tip = null;
    }
  }
};

function getInput(name, color, estilo, frm, ro){
  if (ro=="si"){
    return "";
  }

  var input = "";

  if (frm==""){
    frm = "formRombo";
  }

  if(color=="Blanco"){
    input = "<input class='"+estilo+"' type='button' value='OXI' ";
    input += "onclick=\"document." + frm + "." + name + color + ".value='OXI'; Tooltip.hideDelay=0; hideTip();\"><br>";
    input += "<input class='"+estilo+"' type='button' value='Ácido' ";
    input += "onclick=\"document." + frm + "." + name + color + ".value='Ácido'; Tooltip.hideDelay=0; hideTip();\"><br>";
    input += "<input class='"+estilo+"' type='button' value='ÁLC' ";
    input += "onclick=\"document." + frm + "." + name + color +".value='ÁLC'; Tooltip.hideDelay=0; hideTip();\"><br>";
    input += "<input class='"+estilo+"' type='button' value='COR' ";
    input += "onclick=\"document." + frm + "." + name + color +".value='COR'; Tooltip.hideDelay=0; hideTip();\"><br>";
    input += "<input class='"+estilo+"' type='button' value='A' ";
    input += "onclick=\"document." + frm + "." + name + color +".value='A'; Tooltip.hideDelay=0; hideTip();\"><br>";
    input += "<input class='"+estilo+"' type='button' value='RAD' ";
    input += "onclick=\"document." + frm + "." + name + color +".value='RAD'; Tooltip.hideDelay=0; hideTip();\">";
  }else{
    input = "<input class='"+estilo+"' type='button' value='0' ";
    input += "onclick=\"document." + frm + "." + name + color + ".value='0'; Tooltip.hideDelay=0; hideTip();\"><br>";
    input += "<input class='"+estilo+"' type='button' value='1' ";
    input += "onclick=\"document." + frm + "." + name + color + ".value='1'; Tooltip.hideDelay=0; hideTip();\"><br>";
    input += "<input class='"+estilo+"' type='button' value='2' ";
    input += "onclick=\"document." + frm + "." + name + color + ".value='2'; Tooltip.hideDelay=0; hideTip();\"><br>";
    input += "<input class='"+estilo+"' type='button' value='3' ";
    input += "onclick=\"document." + frm + "." + name + color + ".value='3'; Tooltip.hideDelay=0; hideTip();\"><br>";
    input += "<input class='"+estilo+"' type='button' value='4' ";
    input += "onclick=\"document." + frm + "." + name + color + ".value='4'; Tooltip.hideDelay=0; hideTip();\">";
  }
  return input;
};

function doTooltip(e, msg) {
  if ( typeof Tooltip == "undefined" || !Tooltip.ready )
  return;
  Tooltip.clearTimer();
  var tip = document.getElementById? document.getElementById(Tooltip.tipID): null;
  if ( tip && tip.onmouseout == null ) {
    tip.onmouseout = Tooltip.tipOutCheck;
    tip.onmouseover = Tooltip.clearTimer;
  }
  Tooltip.show(e, msg);
};
function hideTip() {
  if ( typeof Tooltip == "undefined" || !Tooltip.ready ) return;
  Tooltip.timerId = setTimeout("Tooltip.hide()", 300);
};
function contained(oNode, oCont) {
// returns true of oNode is contained by oCont (container)
  if (!oNode) return; // in case alt-tab away while hovering (prevent error)
  while ( oNode = oNode.parentNode ) if ( oNode == oCont ) return true;
  return false;
};
evento.add(window, "unload", Tooltip.unHookHover, true);